#!/usr/bin/env python
# -*- coding: utf-8 -*-

import util
import lipsum
import sys
import math 
import random 
import time

class Modelo(util.Sujeto):
    contador = 0
    titulos = None
    contenidos = None
    generator = None
    muerto = True
    

    def __init__(self):
        util.Sujeto.__init__(self)
        sample = 'sample.txt'
        dictionary = 'dictionary.txt'
        self.generator = lipsum.generator(sample, dictionary)
        self.titulos = []
        self.contenidos = []

    def anadir_fila(self,name):
        self.titulos.append(name)
        self.contenidos.append(self.generator.generate_paragraph(True)
                               +"\n"+self.generator.generate_paragraph(True)
                               +"\n"+self.generator.generate_paragraph(True))
        self.actualizar(self.titulos[len(self.titulos)-1])
        self.contador = self.contador + 1  
        
    def getContenido(self,pos):
        return self.contenidos[pos]
    
    def matar_thread(self):
        self.muerto = True
        
    def thread_muerto(self):
        return self.muerto
    
    def refresh(self,progressBar):
        tiempo = math.exp(random.random()*5)
        self.muerto=False
        print >> sys.stderr, "Entramos en refres(). Esperamos " + str(tiempo) + "s"
        while tiempo>0:
            progressBar.pulse()
            time.sleep(0.5)
            if (self.muerto):
                print >> sys.stderr, "Thread matado"
                break
            progressBar.pulse()
            time.sleep(0.5)
            if (self.muerto):
                print >> sys.stderr, "Thread matado"
                break
            tiempo = tiempo - 1 
        self.muerto=True
        print >> sys.stderr, "Salimos de refres()"

    
    def getTitulo(self,pos):
        return self.titulos[pos]